1. Field of the Invention
The present invention relates to a decode processing apparatus, a decode processing method, a data distribution program, and a decode processing program for decoding moving picture data encoded in units of a predetermined processing block such as a macro block.
2. Description of the Related Art
Recent years have witnessed widespread use of moving picture encoding methods such as MPEG-2 (Moving Picture Experts Group phase 2), MPEG-4 (Moving Picture Experts Group phase 4), H.264 (MPEG-4 Advanced Video Coding), and VC-1 developed by Microsoft Corporation. To use the moving pictures encoded by any one of the methods above involves decode processing. Where moving picture data encoded by one of the moving picture encoding methods is to be decoded by multiple processors that carry out the decode processing in parallel for load distribution purposes, each of the processors typically performs its processing in units of a macro block constituting the minimum processing unit.
As shown in FIG. 11, a macro block is one of split areas making up a picture of a single screen (i.e., one frame) having a predetermined picture width and picture height. Each of the split areas measures 16 by 16 pixels (a square pixel block).
According to the recently developed moving picture encoding methods such as MPEG-4, H.264 and VC-1, it is stipulated that a target macro block be decoded by referencing the decoding results of the macro blocks positioned left, top left, on top, and top right of the macro block to be processed.
For example, as shown in FIG. 12, suppose that the centrally located macro block shown shaded is the macro block to be processed. In this case, decoding the picture data of the macro block in question requires referencing the decoding results of four macro blocks positioned left, top left, on top, and top right of the target macro block. It follows that the decoding of the target macro block needs to be started after completion of the decoding of at least four macro blocks positioned left, top left, on top, and top right of the macro block in question.
Conversely, as long as the above-mentioned order of processing of macro blocks is maintained, decode processing is carried out with no conflict between processors regardless of which processor deals with which macro block. That is, as long as the defined order of processing of macro blocks is kept intact, the multiple processors involved may handle macro blocks in any order.
In the circumstances outlined above, various decode processing methods have been developed. For example, Japanese Patent Laid-open Nos. 2006-129284 and 2006-129285 (hereinafter referred to as the Patent Documents 1 and 2, respectively) disclose a technique whereby macro blocks are processed while processing status (e.g., execution underway, processing completed, etc.) of each of the macro blocks involved is being managed and scanned (in parallel if possible).
Specifically, as shown in FIG. 13, the technique disclosed by the Patent Documents 1 and 2 involves processors each concurrently processing the macro block two blocks left of a target macro block positioned one macro block row above.
That is, as in FIG. 13, each of processors 1, 2 and 3 deals with one row of macro blocks having the width of a picture. The macro blocks positioned one row below are handled by another processor.
Each of the processors 1, 2 and 3 processes each row of macro blocks sequentially from left to right. The macro blocks one row below are each processed two blocks later.
Japanese Patent Laid-open No. 2008-072647 (hereinafter referred to as the Patent document 3) discloses a technique which takes advantage of the absence of dependence between intra macro blocks and inter macro blocks and which involves delimiting each macro block row immediately before an inter macro block so as to determine the boundaries between the macro blocks to be shared by processors.
Japanese Patent Laid-open No. 2006-319944 (hereinafter referred to as the Patent Document 4) discloses a technique that involves slicing a screen horizontally in a manner reflecting the number of decoders in use, the screen slices being shared by the multiple decoders. Slicing the screen horizontally means splitting the screen into a plurality of areas in the vertical direction.